使用 Cadence IC617 的蒙特卡洛仿真器仿真单端运放的失调电压 – Analog

您所在的位置:网站首页 cadence IC仿真报错resva 使用 Cadence IC617 的蒙特卡洛仿真器仿真单端运放的失调电压 – Analog

使用 Cadence IC617 的蒙特卡洛仿真器仿真单端运放的失调电压 – Analog

2024-07-16 04:53| 来源: 网络整理| 查看: 265

本文最后更新于 682 天前,其中的信息可能已经有所发展或是发生改变。前言

最近由于仿真需要,本人学习了一下Cadence IC617进行蒙特卡洛仿真的方法,同时成功的使用蒙特卡洛仿真来仿真了一个运放的等效输入失调电压。由于当时学习时还是耗费了一定的工夫的,因此在这里写一篇文章记录一下。

1. 什么是运放失调

运放的输入失调电压,通俗的来说,就是当运放的两个输入端的电压相同时,对于一个理想运放来说输出因该是 0。而对于一个实际的运放来说,此时输出并不会是 0,而是会有一定的偏差。如果想抵消掉这个偏差,就必须在运放的一个输入端加上一定的电压,从而让输出变成 0。这个加上去的电压就是输入失调电压。[1]

如果大家想详细的了解关于运放失调的一些知识,可以去看 ADI 公司的关于运放失调电压的文档2. 为什么要用到蒙特卡洛仿真

实际的集成电路工艺中,器件会由于各种各样的工艺因素,从而产生一些失配,进而会使运放产生一定的失调电压。然而在 Cadence IC 中,通常的 dc 或者 ac 等等仿真是不会考虑器件的失配情况的,因此进行这些仿真时,会默认认为所有的器件是不存在失配特性的。这样进行的仿真,是无法仿真出运放的真实的失调电压的。

而蒙特卡洛仿真,是一种使用随机抽样估计来估算数学函数的计算方法。在进行蒙特卡洛仿真时,仿真器会对实际工艺中产生的各种偏差的值来进行多次的随机抽样,从而可以模拟出某个电路参数在实际工艺中所产生的工艺偏差的整体分布情况。相较于使用 5 个工艺角(TT\FF\SS\FS\SF)进行仿真的情况,蒙特卡洛仿真不仅能完备的全覆盖实际的工艺变化范围,从而分析到所有的工艺偏差;同时还能获得某个电路参数在工艺偏差影响下的概率分布曲线,进而可以分析电路的良率。[2]

3. Cadence IC617 进行蒙特卡洛仿真的流程1. 确定工艺库是否支持蒙特卡洛仿真

在进行蒙特卡洛仿真时,首先要确认工艺库是否支持蒙特卡洛仿真。部分工艺库中是不带有蒙特卡洛仿真的仿真模型文件的。大家可以通过阅读该工艺提供的与仿真相关的说明文档,来确定工艺是否支持蒙特卡洛仿真。

2. 搭建仿真电路

将运放置于单位反馈的状态,同时给运放一个满足其输入共模电压范围的合适的输入电压,并在输出接上一个负载电容,就搭建好了一个可以用来进行运放失调电压仿真的仿真电路了,如下图。此时运放输出电压与输入电压的差值就是运放的等效输入失调电压值。(如果运放的增益足够大的话)

3. 添加蒙特卡洛仿真的模型文件

确认工艺支持之后,就可以按照工艺库文档中所说的方法将蒙特卡洛仿真的相关文件添加进 ADE L 的 Model Labraries 中去了,如下图。(大部分工艺库的添加方法为将原来所选的工艺角改为mc,有些也需要将一个新文件添加进去)

对于某些需要添加模型文件的工艺库,添加方法如下。

首先找到该工艺的蒙特卡洛仿真模型文件:

随后将该文件导入进去,并且将工艺角设置为 mc,同时取消勾选对应的 model 文件:

4. 设置好仿真环境

首先添加好大家在原理图中设置的仿真变量(按照自己仿真的原理图中实际添加变量的来进行设置,不要照抄),并设好值。随后在 Analyses 中选择 DC 仿真,并选择 Save DC Operating Port:

5. 设置好输出

设置输出是进行蒙特卡洛仿真的非常重要的一环,只有设置好一个正确的输出才能得到我们想要的概率分布曲线。对于这个仿真电路,输出的设置为:(VDC(“/Vout”) – VDC(“/Vinp”))(需要按照自己原理图中的线网命名进行更改),如下图:

将以上这些都设置好后,就可以先跑一个普通的仿真试一下了。如果没有报错,并且能正常的输出结果,就说明上面的设置没什么问题了,可以使用 Session – Save State 选项将这个仿真状态保存起来了。

如果大家发现你设置的输出无法 Plot 出来,可以去看看这篇文章6. 启动ADE XL,并进行蒙卡相关设置

选择 Launch – ADE XL,并选择 Create New View,创建一个 AED XL 的 view,并打开它:

选择 Run,并选择 Monte Carlo Sampling,打开蒙特卡洛仿真的设置界面,并按照下图进行设置。(红色箭头处为运行蒙特卡洛仿真的点数,即不同失配条件下的仿真的运行次数。点数越多,最终的仿真结果越精确,但是速度也越慢)

7. 运行蒙特卡洛仿真,并输出结果

点击 Run Simulation 的绿色箭头,并等待仿真完成即可:

运行完毕后的显示如下,从结果中可以看出失调电压的最大值,均值和标准差等参数:

点击上图中 Repalse 旁边的图像选项,就可以输出一个概率分布图像,通过这个图像就可以得出由于工艺偏差导致的失调电压的分布情况:

4. 其他的一些问题

有些人在例如自己学校的服务器等等VNC服务器中进行蒙特卡洛仿真时,可能会报一些错误如:「Failed to start new job after 8 attempts.」等等,如下图:

出现这种情况是因为:在进行蒙特卡洛仿真时,这时的仿真模式与单纯的 ADE L 仿真不同,用的是virtuoso -nograph 模式,在使用 vnc 连接服务器的时候,Cadence 不知道显示的端口是什么。所以,需要定义 2 个变量来指定 vnc 端口。

具体的定义方式为:在命令行中使用 vim 命令或者使用文件管理器打开自己的 home 目录下的 .cshrc 文件,并在文件的末尾加上如下两行(其中的数字需要大家自己根据自己用的 vnc 端口号来进行修改):

setenv CDS_XVNC_TENBASE 8 # 自己用的 vnc 端口号的十位数 setenv CDS_XVNC_OFFSET 4 # 自己用的 vnc 端口号的个位数这里需要注意的是,CDS_XVNC_TENBASE 变量合法的取值范围为 1-9,如果大家使用的是 0x 系列或者 10x 系列的 vnc 端口,需要重新修改 vnc 的端口在合理的取值范围内。[3]

修改完成后,重启命令行以及 Cadence 软件,此时因该就可以正常的进行蒙特卡洛仿真了。同时,大家也可以在命令行中使用 virtuoso -nograph 该命令对上述修改结果进行验证,如果该命令能正常运行就没有问题。(这里感谢张老师提供的解决方法。)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3